/*******************************************************************************
 * @file Copyright 2009 The CREATE Lab at CMU
 * 
 *       This file is part of JubJub, an open source project.
 *       http://code.google.com/p/jubjub/
 * 
 *       Redistribution and use in source and binary forms, with or without
 *       modification, are permitted provided that the following conditions are
 *       met:
 * 
 *       Redistributions of source code must retain the above copyright notice,
 *       this list of conditions and the following disclaimer.
 * 
 *       Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 * 
 *       Neither the name of Carnegie Mellon nor the names of its contributors
 *       may be used to endorse or promote products derived from this software
 *       without specific prior written permission.
 * 
 *       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 *       "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 *       LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 *       PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 *       HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 *       SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 *       LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 *       DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 *       THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 *       (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 *       OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************/

package edu.cmu.ri.createlab.jj.ui;

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

import edu.cmu.ri.createlab.jj.blocks.CommentBlock;

public class JJCTextField extends JScrollPane
{
   JJScrollText text;
   
   public JJCTextField(String s)
   {
      text = new JJScrollText(s);
      text.setWrapStyleWord(true);
      text.setLineWrap(true);
      text.setBackground(new Color(210,255,210));
      this.add(text);
   }
   
   public JJCTextField()
   {
      text = new JJScrollText();
      text.setWrapStyleWord(true);
      text.setLineWrap(true);
      this.setBackground(new Color(200,255,200));
      this.setViewportView(text);
   }
   
   public void setBlock(CommentBlock block)
   {
      text.setBlock(block);
   }
   
   public void setBounds(int x, int y, int width, int height)
   {
      super.setBounds(x, y, width, height);
      text.setBounds(0, 0, width, height);
   }
//   
//   public void actionPerformed(ActionEvent e)
//   {
//      block.setComment(this.getText());
//      //System.out.println(block.getValue(0));
//   }

}

class JJScrollText extends JTextArea implements CaretListener
{
   CommentBlock block;
   
   public JJScrollText(String s)
   {
      this.setText(s);
   }
   
   public JJScrollText()
   {}
   
   public void setBlock(CommentBlock block)
   {
      this.block = block;
      this.setText(block.getComment());
      this.addCaretListener(this);
   }

   
   public void caretUpdate(CaretEvent e)
   {
      block.setComment(this.getText());
      //System.out.println(block.getComment());
   }
   
}
